package com.java214.elec.controller;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.java214.elec.entity.ElecExportFields;
import com.java214.elec.service.IElecExportFieldsService;
import com.java214.elec.utils.StringToListUtils;


/**   
*    
* 项目名称：MyEleManagerSys   
* 类名称：ElecExportFieldsController   
* 类描述：   文件导出控制类
* 创建人：君无邪   
* 创建时间：2019年11月13日 下午7:39:54   
* 修改备注：  https://www.java214.com 
* @version    1.0
*    
*/ 
@SuppressWarnings("serial")
@Controller("elecExportFieldsController")
@Scope(value="prototype")
public class ElecExportFieldsController extends BaseController<ElecExportFields> {

	//定义对象
	private ElecExportFields elecExportFiles=this.getModel();
	//注入业务类
	@Resource(name=IElecExportFieldsService.SERVICE_NAME)
	private IElecExportFieldsService elecExportFieldsService;
	
	/**
	 * 
	* @Name: setExportExcel（方法的名称）
	* @Description:跳转导出设置的页面（左移右移）
	* @Author: 滕一帆（作者）
	* @Version: V1.00 （版本号）
	* @Date:2019年11月13日 下午7:41:45 
	* @Parameters: null
	* @Return: 跳转到system/exportExcel.jsp
	 */
	public String setExportExcel(){
		//获取所属模块（主键ID）
				String belongTo = elecExportFiles.getBelongTo();
				//1：使用belongTo作为主键，查询导出设置表，获取ElecExportFields对象
				ElecExportFields exportFields = elecExportFieldsService.findElecExportFields(belongTo);
				/**
				 * 2:使用ElecExportFields对象获取4个字段的值
					 未导出的中文字段       未导出的英文字段           导出的中文字段           导出的英文字段
					   同时将4个字段的值，使用#号分割，转换成4个集合List<String> list
				 */
				List<String> noZList = StringToListUtils.stringToList(exportFields.getNoExpNameList(),"#");
				List<String> noEList = StringToListUtils.stringToList(exportFields.getNoExpFieldName(),"#");
				
				List<String> zList = StringToListUtils.stringToList(exportFields.getExpNameList(),"#");
				List<String> eList = StringToListUtils.stringToList(exportFields.getExpFieldName(),"#");
				/**
				 * 3：由于特点
					  【未导出的中文字段和未导出的英文字段，长度要一一对应
					   导出的中文字段和导出的英文字段，长度要一一对应】
				   4：使用2个map集合，存放未导出字段的集合，存放导出字段的集合
					  Map<String,String> map
					   map集合的key存放英文信息，map集合的value存放中文信息
				 */
				//存放未导出的字段
				Map<String, String> noMap = new LinkedHashMap<String, String>();
				//存放导出的字段
				Map<String, String> map = new LinkedHashMap<String, String>();
				//因为noZList和noEList长度一一对应
				if(noZList!=null && noZList.size()>0){
					for(int i=0;i<noZList.size();i++){
						noMap.put(noEList.get(i), noZList.get(i));
					}
				}
				//因为zList和eList长度一一对应
				if(zList!=null && zList.size()>0){
					for(int i=0;i<zList.size();i++){
						map.put(eList.get(i), zList.get(i));
					}
				}
				request.setAttribute("noMap", noMap);
				request.setAttribute("map", map);
		return "setExportExcel";
	}
	/**
	 * 
	* @Name: saveSetExportExcel（方法的名称）
	* @Description: 保存导出设置（方法的描述）
	* @Author: 滕一帆（作者）
	* @Version: V1.00 （版本号）
	* @Date:2019年11月14日 上午12:59:43 
	* @Parameters: null
	* @Return: 跳转到close.jsp(关闭页面)
	 */
	public String saveSetExportExcel(){
		elecExportFieldsService.saveSetExportExcel(elecExportFiles);
		return "close";
	}
}
